/*
    This file is part of Peers, a java SIP softphone.

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
    Copyright 2010 Yohann Martineau 
*/

package net.sourceforge.peers.gui;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

import net.sourceforge.peers.Logger;
import zdh.avatar.softphone.Softphone;

/**
 * Call is in UAS (User Agent Server) state when an incoming call is received.
 * That is, even without clicking the accept button, as long as there is an
 * incoming call, the call is already in UAS state.
 * 
 * This state is only triggered from the INIT state of the call.
 * 
 * @author Gem Seeker
 */
public class CallFrameStateUas extends CallFrameState {

    public CallFrameStateUas(String id, Softphone softphone, CallFrame callFrame, Logger logger) {
        super(id, softphone, callFrame, logger);
    }

    @Override
    public void pickupClicked() {
        callFrame.setState(callFrame.SUCCESS);
        callFrame.pickup();
        // TODO: play pickup tone
        softphone.successState();
    }

    @Override
    public void busyHereClicked() {
        callFrame.setState(callFrame.TERMINATED);
        callFrame.busyHere();
        softphone.terminatedState();
    }

    @Override
    public void remoteHangup() {
        callFrame.setState(callFrame.REMOTE_HANGUP);
        // TODO: play hangup tone
        softphone.remoteHangupState();
    }

}
